package cn.rocky.offer;

/**
 * @deprecated 剑指offer15: 二进制中 1 的个数
 * @author Rocky
 */
public class offer05 {

    /**
     * 输入是一个无符号整数（以二进制串的形式）,
     * 返回其二进制表达式中数字位数为 '1' 的个数（也被称为 汉明重量).）
     * @param n
     * @return
     */
    public int hammmingWeight(int n) {
        int ans = 0;
        for (int i = 0; i < 32; i++) {
            ans += ( (n>>i) & 1);
        }
        return ans;
    }

    public int hammingWeight2(int n) {
        int ans = 0;
        while(n!=0) {
            ans += (n&1);
            n >>>= 1;
        }
        return ans;
    }

    public static void main(String[] args) {
        offer05 offer05 = new offer05();
        int n = 00000000000000000000000000000001;
        System.out.println(offer05.hammmingWeight(n));
    }
}
